/**
 * @Copyright ®2015 Sinosoft Co. Ltd. All rights reserved.
 * 项目名称 : 网站服务平台
 * 创建日期 : 2016-11-25
 * 修改历史 :
 * 1. [2016-11-25]创建文件 by chenxin
 */
package com.sinosoft.sinopay.paytrade.biz.integration.mapper;

import java.util.List;

import com.sinosoft.sinopay.paytrade.dto.PayTradeSearchDTO;
import org.apache.ibatis.annotations.Param;

import com.sinosoft.sinopay.api.common.dto.pay.PaymentInfoDetailDTO;
import com.sinosoft.sinopay.api.common.dto.query.PayInfoQryParam;
import com.sinosoft.sinopay.paytrade.dto.PayTradeNotifyRecordDTO;
import com.sinosoft.sinopay.paytrade.dto.PaymentRequestDTO;
import com.sinosoft.sinopay.paytrade.dto.PaymentTradeReqDTO;
import com.sinosoft.sinopay.paytrade.generated.model.PayTradeBatch;
import com.sinosoft.sinopay.paytrade.generated.model.PayTradeNotifyRecord;

/**
 * 【支付交易自定义mapper】
 * @author chenxin
 * @date 2016-11-25 上午9:18 
 * @version V1.0
 */
public interface PayTradeMapper {

    /**
     * 通过查询参数查询支付交易相信信息集合
     * @param queryParam  查询参数对象
     * @return  支付交易相信信息集合
     */
    List<PaymentInfoDetailDTO> selectPaymentDetailListByParam(@Param("queryParam")PayInfoQryParam queryParam);


    /**
     * 方法的功能描述：根据订单号查询订单信息
     * @param payNo
     * @return PaymentRequestDTO
     * @throw
     * @author bianzb
     * @version V1.0
     * @date 2016-12-15
     */
    public PaymentRequestDTO selectPaymentOrderByPayNo(String payNo);


    /**
     * 方法的功能描述：查询当日所有支付交易信息表数据
     * @param bankCode,dateNow
     * @return List<PaymentInfoDetailDTO>
     * @throw
     * @author dengcanyang
     * @version V1.0
     * @date 2016-12-26
     */
	List<PaymentInfoDetailDTO> selectDayAllPayTransInfo(@Param("queryParam")PayInfoQryParam queryParam);

    /**
     * 方法的功能描述：查询当前批次支付交易信息表数据
     * @return List<PaymentInfoDetailDTO>
     * @throw
     * @author dengcanyang
     * @version V1.0
     * @date 2016-12-26
     */
	List<PaymentInfoDetailDTO> selectBatchNoTransInfo(String batchNo);

	/**
     * 方法的功能描述：查询当日所有支付订单批次表数据
     * @param bankCode,dateNow
     * @return List<PaymentTradeReqDTO>
     * @throw
     * @author dengcanyang
     * @version V1.0
     * @date 2016-12-26
     */
	List<PayTradeBatch> selectDayAllPayOrderBatches(@Param("queryParam")PayInfoQryParam tPayInfoQryParam);


    /** 
     * 查询 支付交易回调信息列表
     * @param cPayTradeNotifyRecord 查询参数：商户编码、支付号码、回调地址、回调类型、回调次数、回调限制次数、回调结果
     * @return List<PayTradeNotifyRecord>
    */ 
    
    List<PayTradeNotifyRecord> selectTradeNotifyRecordListByParam(@Param("cPayTradeNotifyRecord")PayTradeNotifyRecordDTO cPayTradeNotifyRecord);


    /**
     * 查询批量结果信息
     *@return
     */
    PaymentInfoDetailDTO selectBatchMsgFotSearch(@Param("queryParam")PayTradeSearchDTO payTradeSearchDTO);
    
    
    int insertTransePayRelate(PaymentTradeReqDTO cPaymentTradeReqDTO);
    
    int updateTransePayRelate(PaymentTradeReqDTO cPaymentTradeReqDTO);
}
